perm filename TODO[RDG,DBL]3 blob sn#547172 filedate 1980-11-29 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		Questions
C00004 00003		Things yet to be done to RLL:
C00012 00004	Quickies:
C00015 00005	Units to Rename/Add/Delete
C00027 00006		Things done
C00037 ENDMK
C⊗;
	Questions
(Especially related to CORLL)
Dave: could we have several logically distinct KBs on one file?
_∪)Q%]OfAeKhAi<AEJA⊃←]JAQ↑A%→0t~∃kAICiK⊂A6pA5Cr@bdpa:X↓6lAβAd@br`a:XAMiCei∃HA6p↓
KD@Drpa:4∀~∀}|}}}~(`\A¬%∞Aπ⊃¬≥∂
t↓)QJAU≥∪(AMQ←kY⊂AW]←\ACE←UhAiQ∀ACGG∃ggS]≤XA]←PAiQJ↓gY←h∧A⊃K]
JX~∀%Cgg←
SCiJ↓oSiP↓KCGP↓↔∧@Q=dAk]%h}RAQQJA]¬[JA←_AiQJ↓CGGKMgS]N↓isaKL@Z~∀%g↑AG!C]OJ↓∂Ki-¬YkJAQ↑A%→1∂Ki-¬YkJX↓C]HAMiSGVQ∂Kh\A%→1∂Ki-¬YkJR↓←\AK¬GP~∀%←LAGUeeK]PA↔¬fQgS[%YSCe1rAoSQPA!kPXAβI⊂X@\\8R~∀∪9←iJt↓i↑AK5kYCi∀A+]SQfXAUUghAaUhA+α5∂)-¬→+
AQQKeJ8\\~∀4∀@@@↓∪\Ai!SfAo¬rXAo∀AGC\↓g←Ym∀A∂K]∃gKeKQPOf@_A$A⊂5$OfA
←[aY¬S]if0@\\\4∀∪C]⊂ACYY=nAmCIS←kf↓gGQK5Kf~∀%M←dA%]IKq%]N\~(}}}}|~∀~∀D\AqQK]HA9←iS←8A←LA
CGQS9N@ZZ↓SJA←_ABAgQ←eKH↓mCYk∀\~∀@↓'Y←iLACeJ↓EkhA=]JAo¬r\~∀A∂K]∃eCXAMaKFA→←dAMU]GiS=\t~∀$Q!eJ↓o←eV$~∀∪→=←VASPAk`~(∩@A∪_A]←h↓M←k]⊂tAπ←5akiJ↓Sh~∀$Q!←gPAo←e,R~∀@↓qC[AYKft↓
k]GQS←]'AKF~∀$Q]←i∀AShAMQ←kY⊂AEJA
CYGk1CiKH↓ErAG=[ES]%]NA	∃M\X@8\\AS_@4*A!SOQ→∃mKY	∃M\R~(∩@@@↓'Y←iLAM←d↓∪qC5aYKf Qβ]s⊃←NRR4∀∩@@@}A	∃gGeSAi←ef|~∀~∀H\A
S`AgY←QfA←L↓βYYaC[aY∃g7β]e
←e[¬i:AI<AiQJ↓eSOQPAiQS9N\A)!KrACIJ@Q∩↓iQS],R~∀@↓G←ee∃GhAM=dA
'∃hXA
MS]OY∃i←\X↓
¬CN↓C]HA→→SghlAC]H↓C]HA=iQKd↓'Y←i→←e[CP~∀@@↓
]
←I	KYKQS]NX↓
]
←I'kEgQSiki%]NXA→]
←e¬IIS]≤XA
]→←e-KISMsS9OβYX0A
]
=e↔SY1S]N~(@AEkPA]←h↓ChAC1XAM←HAiQ←MJAS\↓β]s-¬YkK
=e[Ch8~∀∪β1g↑XA5C]rA=LAiQ∃gJACIJAS]
←]gSMiK]h4∀@AK≤tA
aKGki∀@ZAG¬aCEY∀A←LAUgS]N↓k+≥∪PAC]H↓k'→∨PXAE←U]HAEdA
S]⊃	KMCUYh\~(@@@@%/SYX↓iQSf↓OKhA%\Aie=kEYJZASJ↓oSiP↓eKGkIgS←\|~∀∪β9&tA≥∃nAoQdXAoSQP@Q-¬YkK
=dAk]%hAgY=hR~∀4∀f\A%fAiQ%fAQ←\Ai↑A!C]IY∀A)K[AYCiKL}@ZAAKeQCAfACf↓IKgGISai←IfXAC1BA'!%→_AC≥K]IC∀~∀∩Z↓g↑AG¬\AIKQKe[S9JA]K\AiCg,AErA→YKgQ%]NA←UhAgk
PAIKMGeSaQ←d\~(∪←]YdAQKe∀AoSY0AShA
CYXAQQChA→k]Gi%←\A7%\A
S9I	KM¬kYi:4∀~∀h8A)QJ↓oCrA=LAQC9IYS]≤AMk]
iS←]LA7!e=GKgg∃g:ASLA≥∨(↓i←iC1YrAG=]gSgQK]h\~∀@@↓'Q←k1HAQCYJACe≥YSgiLX\\\↓βYg↑↓g←[J↓]←iS=\A←L↓Q←nAQ↑AGQ∃GVAM=dAoQ¬h\~∀@AπCMJAoQ∃\ASf↓gkD[U]ShX↓mKegUfAkg∃dAGC1YCEY∀AM\\8\~∀∪9KnACAaYr@4AgQ←UYHAE∀tASL*A\A¬eOfX↓SLA\tbXAi!K\Ag1←hXA8zd@zxAMSK1HX~∀$∪KYg∀AUkgPACaa1rAIK→\A←L↓MSegPACeN8\\~∀@AπQ¬]OJA→e←ZA!←o)←Ae←GKMfAi↑↓→Sga→\~∀~(j\A
%pA!e=GKgg∃fXAg<ASif↓CeOf↓GC\AYCer~(∪SJX↓kgJA⊃←[CS9)saJ↓M←dA∃CGPX↓oSiP↓%C]O∃)saJz@E/!←πCe∃fD~∀4∀@@kλ\A+]%hAGe∃CiS←8ASfA∧@Ak]%hAYSMhAae=GKgfZA[C-JASh↓g↑\A≥SmJA%hABA⊃KM\X↓oQ←g∀~∀∪e¬]OKieaJASLA/Q←
CeKf∧~∀∩∪UgS]N↓βaaYe)←C
P@}~(A≥←i∀tA)Q%fA↔¬UaICi∃fASf↓CYg↑↓BA+]%i!e←
Kgf@4ZA[C-JASh↓g↑B@4∀∪≥∨Q
tAM=dAkISgW←Ae←GKMgKfX↓	←[C%])sa∀AIKIUGKHA→e←ZA]QCi)=!e←G∃gf~∀4∀l\AAe←Ik
iS←\↓%kYKL@ZAi!KSdA→←e[C1SgZX↓C]HAQQJAY%WJXA9KKIf↓i↑AE∀AeKg=YmKH8~∀∪
%OkeJ↓←khA5←eJAMikML↓M←dAIkYKfZAKN↓gi←e∀@FA←_AiS[∃fAie%KHXA¬]HAgUGGKgL\~∀∪5←eJA!KkeSMiSGf8\\@Q∃N@Aβ9s+]SQπeKCQS←]%UYJR~(~∀n\↓/eSi∀Aπ←[5←]⊃→⊃KM\@4ZA⊃S≥Q→Km∃Y	KM8AgQ←UYHAE∀AgkM→SGSK9hAi↑↓IKMS9JABAMY←hB4∀@A≥=iJtAMY←hA
←[ES9KefAQCWJ@L[CeOU[K]iL~∀∪
%eghA%fAYSMhA←L↓gY←iLX~∀∪MKG←]⊂ASfA1SghA=LACe≥]C[KL@~∀∪MKG←]⊂ASfAMaKGS→SGCi%←]f@4ZAKN↓)eC]MSiSm∃πY←gUeKπSIGkYCHXA∨e⊃KeKH0@\\\4∀~∀p8A
SeMi	KM%]KH@4ZA]K\Aisa∀A←LAMY←hA
←[ES9Kd@Z↓YSWJ↓≠GπCIiQrA=$@ZA]QK\AMkEgY=if~∀@@@∪¬eJAI%gU←S9h\~∀4∀r\A5CWJAMkeJA∃CGPAMY←hA!CfAB↓≠CWKM'K]g∃
←d@4∀∩ZA¬]HAS5ae←m∀AMS]¬XAMk9GiS←8Ai↑∪
←]MSIZAiQ¬hAM←HAKCG \\\~(~∀b`8A+gJ↓eKgk1hA←L↓	KMCUYi¬K→←eK!Ui-CYUJ@ZA¬]HA[¬WJAgUeJAi!JAmKISMSKIfAeKQke\~(@@@@%gkGP↓7iQSLASfA5←ISMd\\]:4∀~∀bD\A
S≥keJA]QChA≥←KfA=\A
k9GiS←9πQCe¬GiKd4∀@@@~∀bd8A)←π¬GQJA=LAβY1)saS
CYq¬[aYKL@@Z@ U	↑T↓'KK*→&@VV,AβYY∃qC[a1KfR~(~∀bl8A≥KK⊂ABA/!K]
S1YKH@!	KM\↓YSWJ↓∪M≥K∃IKHR~∀∪7AKeQCAfABA
←[akQK/QK9
SYY∃HXAY%giS]≤AgY←QfAi↑↓EJAM%qKHAUa:~∀4AiQSLAakg!KfAg=[JAm¬YkKf↓CY←]≤~∀∪o!K\AB↓]KnAYCYkJ↓QCfA	KK\A∃]iKeIKH\\8~∀∪7QQSfA
C\AI<@PbR↓eKG←5akiS9NAgMK]iS¬XAgY=ifXA¬]H@PHRAIKQKe[S9S]NAYCYkJ4∀∪←L↓gY←h↓0AoQ∃\AgY=hA2A!CfAE∃K\AG!C]OK⊂]:~∀A+gJ↓iQSf↓i↑Ae%HAgK1LA←L↓
k]GQS←]'AKFA[=]gie=]gSidXAEr↓CYoCefAakMQS]N↓mCYk∃fAS]Q↑~∀∪MY←if0AS\A¬YXAi!eKJA
CgKf8A7+g∀AπCG!K-CYUJAM←HA←]J↓]←hA∃qaYS
SiYr↓eKck∃giKH0~∀∪o%iPAo!rAmC1kJAKaaYCS9S]NAQQSf]t~∀@A¬]←iQ∃dAg←1kiS←8t@~∀%
k]GQS←]'AKFXA]QK\A
CYYK⊂XACkQ←[Ci%GCYYdAGCG!KfA	∃M\XA⊃←[CS9)saJ↓C]H~(∪%C]≥K)sa∀\A'↑↓iQKg∀AgY←QfAI←8OhAE=iPAG¬GQS]≤@ZZA%J@*A9KnAg1←hX~(∪)←π¬GQK-¬YkK
I←[YMKoQKIJXAo!SGPA→k]Gi%←]'a∃FAGC1Yf\~(∪≥←i∀@A	K→\u)←
CGQKYCYkJ↓SfAβ1eKCIeπCGQ∃H@Qo!SGP@xA≥←∨@R~∀@@@@QMQ←kY⊂AiQJ↓gY←h5G←[E%]KdA-]←nA¬E←kh↓iQSf|A⊃←n|@~∀∩|@Q	←¬YeKC⊃r@QβAaYsS9O
\A
β$A⊃%OQ→KYKY	K→\RR@|~∀~∀Dn\A≠=eJAo=eVAo%iPA⊃%OQ→KYKY	K→\@ZAM↑ASL↓@<@!'εALDALdR0AiQK8AoJA
C\AI∃iKe[%]J~∀%iQJA!SOQ→∃mKY	∃M\A←_ALbX↓SLA]∃GKgg¬er~∀4∀bp\↓πCGQ%]N@Z↓ErAgQ←eS]≤AβYY%gCfA=\Aβ]e0XAC9HAakQiS]NQ
'K∃*M&A¬]s0AMkaKe
YCgf(RX~∃=\ACY0Ak]SQfArAL]h\Ad]∪gBz@Qβ9s0RAm]←iJ↓[kgh↓EJAB↓gS]O1Ki←\9:~∀~(br\A
YCgf↓←LAi∃[a←e¬erAk9Sif@4AKNA%]giC9GKfA=LAβ]FocusInstance - to be deleted
	(along with virtual slots) when KB is closed.
---------
Add in units for:
MyIsa, AnyIsa, ExistIsa, VariesWith, ...
Quickies:

Get rid of Agenda, fix Spill, add on RangeInterpreter for UnrestrictedType

1) Finish IsParse? - used with GrammarType.

4) Finish up various facts about SlotCombiners.

6) Description of KBs, at top level [logically distinct]
RLL - only the list of "stops", with essential ones extended.
USERS - list of users, and of classes of users - this KB always loaded in as well.
HEADERS - misc very high level things, which point to most of rest (basically this
	is set of units for classes.)
SLOTS - holds all the slots

7) New KB - LISPFN - this will house my description of various things which are
now lisp functions, especially
GetValue, ...
MapUnit, ...  [note this MAY require fixing I/OTypes - as union of ...]
DefaultGetValue, ...
Units to Rename/Add/Delete

TypicalVirtualSlot → TypicalComputableSlot
ToInitialize	 →	ToInitializeValue ← InitializeSlot
ToCache		 →	ToCacheValue	← CacheValue
Exs		 →	Examples
HowToProcess	 →	LispFn
	fix FGet1Value, HLParser, Process
[Args to Process -dependent on ?]

	Things done

[29 Nov]
Each of these - *P, OneOfThese, Predicate, ... should be units.
3) Use BACKQUOTE to advantage, to make more readible code

Rename from HLDefnParser to HLDefnExpander (and for Type)
	- fix FunctionSpec & VerifyArgs/VerifyValue
Defn of FunctionSpec - GetAccessFn => GetValue for last chance
	(worry of infinite loops...)

[21 Nov]
 Fast flag to UU-DIAGNOSE
 QUOTE?# => QUOTE? => BACKQUOTE
 UF-CANCELNETWORK takes a list
 UF-OPENNETWORK & UF-CLOSENETWORK  -- 2nd arg is fn to be executed
	[NIL defaults to earlier; T does nothing]
	-- 3rd arg : T means ReadOnly
   -- rewrite own UP-OPENNETWORK -

Twiddle AFTERSYSOUTFORMS, BEFORESYSOUTFORMS

Finally thought of them:
	Arg to pass to OverallStartUp, and WhenClosing - so not just name,
	put 2nd value, which that function can use.
	(This ?th argument to UF-OPENNETWORK/UF-WRITENETWORK)

[14 Sept]
1b) RELATED: ToInvalidate - associated with each slot, indicated what to do
	when this value is no longer relevant.

14. IgnoreCached - if given to GetValue, does not do UA-GETVALUE, just uses Defn
	to recompute it. Note: old value should be passed to CacheValue - this
	had always been NIL before.

[9 Sept 1980]

PrimSlot	 →	AnyPrimSlot	← RemoveVirtualSlots
VirtualSlot	 →	AnyComputableSlot  ← RemoveVirtualSlots
$SELF$Slot	 →	Any$SELF$Slot
Examples	 →	UnitExamples

13. Make unit initialization faster 
	- cache slots, ... on inheritance.

0) Now (4 July) doing:
	AnyUser - see #5

0.5) ReadOnly Mode -- set UP.BUMP? to NIL 
	LOGOUT's advise - to see if any put units since last SYSOUT, or
	OpenNetwork (if UF.NETWORKS non-NIL)
  [When logging out, ask user -- even if ReadOnly...?]
 Store who has used this core image.

2) UnionDT, and IntersectDT - need to deal with cases when types are
	different (eg FunctionType & SlotType [transform SlotType into
	(FunctionType (?DomainType? UnitType...))

5) AnyUser, in RLL. - here we store which KBs this user will want. In START,
	single question: "Your usual?". If Y, these loaded in.
	Else gets list, with questions. (May decide these are to be his default, or
	not.) Also, his "profile" indicates answers to the questions.
	Store with each KB whether or not it was Disconnected (and from whom.)
	If not, why even ask to reconnect?
  When he creates a new KB, this added to his list.

[4 July 1980]
ActionPartOfRule →	AnyActionPartOfRule
IfPartOfRule	 →	AnyIfPartOfRule
ThenPartOfRule	 →	AnyThenPartOfRule

1. Fix EDITU so second arg given to PutValue -- so may verify or not...

2. (QUOTE?# '(LAMBDA (*1) (PROG ?1 *2))
	    '((G0035)) 
	    '((unit slot) 
		((* this list is bound to *2) (UA-MAPSLOTS unit 'WRITELNTTY))))
  returns
   (LAMBDA (unit slot) 
	(PROG (G0035) 
	      (* this list is bound to *2)
	      (UA-MAPSLOTS unit 'WRITELNTTY)))
	That is, QUOTE?1 takes three arguments:
	#1: a list, in which substitutions will be made,
	#2: a list, whose i-th element is the value for ?i [here ?1 is (G0035)]
	#3: a list, whose i-th element is the value for *i [here *1 is (unit slot)]

[8 May 1980]
1. Ramifications of Altering a slot's value -- eg
	(i) IF x.S* is changed, THEN ∀ y ε x.(S-1)*, y.S* is invalid
	    [IF S = T ∪ V, & something is added to x.T
		THEN x.S should have that value aded as well - if format is ...]
	(ii) IF OrderedX is built from X by some ordering - ie is redundant-but
		ordered of X - then when U.X is modified by Adding, or Renaming,
		X should be removed from U.SlotsNowOrdered.

5. DomainType, RangeType
	ValuesInvalidated - defined from HighLevel, as should Format, Datatypes

    1) Make sure VerifyAll is doing the correct thing. Also pass unit and slot name
    	to it. (Fix it up for rest of ValueFormats.)
    	Delete now worthless FnForVerifyingAll and -- List.
*   2) MyKB is AnyUnitFunction - make it so.
    5) Args to HLDefnParser should be (name (RangeType) ...) 
    	(note: delete HLVerify - now RangeType.)
    Define DomainTpe, RangeType
    	[Note: need only FnForAdding - 1, List, 1st - come from why part.

 Units renamed.
FnForRenaming1	 →	FnForSubstituting1
ToRenameValue	 →	ToSubstValue	← ↓
[DefaultRenameValue → DefaultSubstValue - this a function]
SubSetDT	 →	SubDT
SuperSetDT	 →	SuperDT
SlotsNowOrdered	 →	MySlotsNowOrdered
EssentialVirtualSlots	 →	MyEssentialVirtualSlots
DependantNetworks →	DependentNetworks  ← GetKBs
ISpecs		 →	ISubClass
PossibleSlotsOfISpecs →	PossibleSlotsOfISubClass
ActionType	 →	FunctionType

 Fix HLDefn.Defn (or ToInit..) - SortSlots => PutInOrder
 CreateSlot - descends from VirtualSlot, not AnySlot
 Fn for computing ToParseParts-like thing, so TPP can be eliminated
 Format & Datatype - should descend from RangeType, softly (not FunctionSpec)
 Names selected - need loops 
	λ(x) (McDo .. (NOT (Unitp (RPLACA (SETQ ...(EXPLODE (GETSYM))  
	[in CreateU4S,CreateSlot. ...]
 Ask user if he wishes to create a new slot - 
	[do we want to merge all things invalidated into one? 
	[  No! Later we might want to do other things, than just invalidate]
	If not, just pass HLDefnParser( highleveldefn ) along - use GetGetVal,
	and the like...
	 - so either PSUEDO-slot or REAL-slot
 If the "why" to the Invalidate function included "DoInverses", pass this along to
	AfterPutValue, so it will actually remove this and that!